from classical.affinecipher import affine_cipher
'''凯撒加密'''
class caesar_cipeher(affine_cipher):
    def setCaesarKey(self, k : int):
        '''
        凯撒加密的公式是 f = x + n mod 26，因此可以看作仿射密码的 a=1, m=26,b作为密钥
        :param k:
        :return:
        '''
        self.setKey(1, k , 26)

    def caesar_encrypt(self, plaintext : str):
        '''
        凯撒加密
        :param plaintext: 明文
        :return: 密文
        '''
        return self.affine_encrypt(plaintext)

    def caesar_decrypt(self, cipertext: str):
        '''
        凯撒解密
        :param cipertext: 密文
        :return: 明文
        '''
        return self.affine_decrypt(cipertext)